A Arquitetura do Crescimento
As coleções do Rust, como Vec<T> e String, não são tipos primitivos; são estruturas definidas em bibliotecas e residem no módulo std módulo. Esta base determina como o Rust organiza os dados por meio do sistema de módulos e gerencia a memória por meio do RAII (Aquisição de Recursos é Inicialização). Enquanto tipos simples vivem na pilha, as coleções utilizam Armazenamento no Heap para crescimento dinâmico, o que significa que sua memória deve ser gerenciada explicitamente por meio do Drop trait.
Resolução de Módulos e Visibilidade
O compilador do Rust mapeia a árvore de módulos começando pelo raiz do crate (src/lib.rs ou src/main.rs). Uma declaração como mod front_of_house; instrui o compilador a procurar por src/front_of_house.rs ou src/front_of_house/mod.rs. Usando pub modificadores e re-exportações (pub use) permite que dados alocados no heap sejam acessados de forma segura por meio de caminhos idiomáticos.
Assim que o escopo de um módulo termina, o Drop implementação reivindica automaticamente a memória do heap: $$Memory_{reclaimed} = \sum Drop(Elements)$$.